Complex software systems are often implemented using applications and platforms from a variety of vendors. In many cases, applications may be shared among various locations, hosts, machines, clients, and other system resources using web services. Web services generally rely upon the use of common protocols or formats such as Web Services Description Language (“WSDL”) to enable applications to be used between disparate platforms from multiple vendors. Platforms may include operating systems, software systems, or other foundation layer software that enables the sharing of data among various applications using formats such as XML. However, there are problems when implementing web services and ensuring a common web service may be integrated for use with different platforms.
Web services are built using common protocols (e.g., WSDL) and often requires significant developer time and labor. Integrating web services to function with different platforms often requires substantial, manual access and modification of source code associated with a particular platform or web service. Adding functionality to an existing web service is also problematic in that source code access and modifications are required. The process of adding functionality to a web service or generating a web service with additional functionality requires manual modification, deletion, or addition of source code in order to build the web service.
When building a web service, a client, host, or other machine or system resource will call an existing web service to retrieve a set of definitions to “learn” how to build the web service. Before, during, and after the call, only the functionality that is defined by the web service can be used by the client. New or different functionality can not be implemented without manually modifying the underlying application source code on the web service.
Thus, what is needed is a solution for extending a web service without changing the implementation of the original web service.